package 每日一题;

public class No896单调数列 {

    /**
     * 如果数组是单调递增或单调递减的，那么它是单调的。
     * 如果对于所有 i <= j，A[i] <= A[j]，那么数组 A 是单调递增的。
     * 如果对于所有 i <= j，A[i]> = A[j]，那么数组 A 是单调递减的。
     * 当给定的数组 A 是单调数组时返回 true，否则返回 false。
     *
     * 示例 1：
     * 输入：[1,2,2,3]
     * 输出：true
     * 示例 2：
     * 输入：[6,5,4,4]
     * 输出：true
     * 示例 3：
     * 输入：[1,3,2]
     * 输出：false
     */

    public boolean isMonotonic(int[] A) {
        if(A.length==1){
            return true;
        }
        int i=1;
        for (; i < A.length; i++) {
            if(A[i]!=A[i-1]){
                break;
            }
        }
        if(i==A.length-1){
            return true;//全等序列
        }
        boolean isAsc=A[i]-A[i-1]<0;//是否为上升序列
        if(isAsc){
            for (int j = i+1; j < A.length; j++) {
                if(A[j]-A[j-1]<0){
                    return false;
                }
            }
        }else{
            for (int j = i+1; j < A.length; j++) {
                if(A[j]-A[j-1]>0){
                    return false;
                }
            }
        }
        return true;
    }

}
